Initialize your productItems
in the controller, for example in the constructor.
List<String> productItems = new List<String>(); // boring
List<String> productItems = new List<String>{'foo', 'bar', 'baz'}; // will have
// these 3 checked assuming there are SelectOptions available with exactly same
// values.
Think about it like that. Ideally the controller class should work on it's own. Maybe reused and called from another class, without any Visualforce context. So in pure apex you'd simply initialize the list ;)